package com.huqing.icu.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.huqing.icu.enums.CommentBusTypeEnum;
import lombok.Data;

import java.sql.Timestamp;

/**
 * 评论实体类
 *
 * @author huqing
 * @date 2024-07-01 19:54
 */
@TableName(value = "comment")
@Data
public class Comment {

    /**
     * 主键ID
     */
    @TableId("id")
    private Long id;

    /**
     * 用户id
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 评论涉及的业务类型 10-房源 20-社区 30-闲置模块
     *
     * @see CommentBusTypeEnum
     */
    @TableField("bus_type")
    private Integer busType;

    /**
     * 评论涉及的业务ID
     */
    @TableField("bus_id")
    private Long busId;

    /**
     * 用户评论时的昵称
     */
    @TableField("user_nickname")
    private String userNickname;

    /**
     * 用户评论时的头像
     */
    @TableField("user_nickname")
    private String userAvatar;

    /**
     * 楼层
     */
    @TableField("floor")
    private Integer floor;

    /**
     * 评论内容
     */
    @TableField("content")
    private String content;

    /**
     * 照片
     */
    @TableField("images")
    private String images;

    /**
     * 回复ID,也就是父id
     */
    @TableField("reply_id")
    private String replyId;

    /**
     * 点赞数
     */
    @TableField("like_num")
    private Integer likeNum;

    /**
     * 回复数
     */
    @TableField("reply_num")
    private Integer replyNum;

    /**
     * 最顶层的父评论ID
     */
    @TableField("top_comment_id")
    private Long topCommentId;

    /**
     * 是否置顶
     */
    @TableField("is_top")
    private Integer isTop;

    /**
     * 删除状态，0-未删除 1-已删除 逻辑删除
     *
     * @see com.huqing.icu.enums.DeleteStatusEnum
     */
    @TableLogic("is_deleted")
    private Integer isDeleted;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Timestamp createTime;

    /**
     * 修改时间
     */
    @TableField("modify_time")
    private Timestamp modifyTime;
}
